package br.com.webprojeto.colecoes;

import java.util.List;

import org.hibernate.Query;
import org.hibernate.Session;

import br.com.webprojeto.basicas.*;

import br.com.webprojeto.interfaces.*;

public class ColecaoEmpresa implements InterfaceColecaoEmpresa {
 
	 
	
	public void adicionarEmpresa(Empresa Emp) {
		Session sessao = HibernateUtil.getSessionFactory().openSession();
		sessao.beginTransaction();
		sessao.saveOrUpdate(Emp);
		sessao.getTransaction().commit();
	}
	 
	
	public void removerEmpresa(long codEmpresa ) {
		Session sessao = HibernateUtil.getSessionFactory().openSession();
		sessao.beginTransaction();
		Empresa Emp = (Empresa) sessao.load(Empresa.class, codEmpresa);
		sessao.delete(Emp);
		sessao.getTransaction().commit();
	}
	 
	
	public void atualizarEmpresa(Empresa Emp) {
		Session sessao = HibernateUtil.getSessionFactory().openSession();
		sessao.beginTransaction();
		sessao.update(Emp);
		sessao.getTransaction().commit();
	 
	}
	 
	
	public Empresa procurarEmpresa(String cnpj) {
		Session sessao = HibernateUtil.getSessionFactory().openSession();
		sessao.beginTransaction();
		Query consulta = sessao.createQuery("from Empresa where cnpj like ?");
		consulta.setParameter(0, cnpj);
		Empresa Emp = (Empresa) consulta.uniqueResult();
		sessao.getTransaction().commit();
		return Emp;
		
	}
	 
	@Override
	public Empresa localizarEmpresaStatus(String status) {
		Session sessao = HibernateUtil.getSessionFactory().openSession();
		sessao.beginTransaction();
		Query consulta = sessao.createQuery("from Empresa where status like ?");
		consulta.setParameter(0, status);
		Empresa Emp = (Empresa) consulta.uniqueResult();
		sessao.getTransaction().commit();
		return Emp;
		
	}
	
	public List<Empresa> listarEmpresa() {
		
		Session sessao = HibernateUtil.getSessionFactory().openSession();
		sessao.beginTransaction();
		Query consulta = sessao.createQuery("from Empresa");
		return consulta.list();
		
	}
	 
}
 
